package com.stone.redis.lock.service;


import com.stone.redis.lock.domain.bo.LockInfo;

/**
 * 锁服务接口
 *
 * @author Mr_wenpan@163.com 2021/7/24 6:36 下午
 */
public interface LockService {

    /**
     * 添加锁信息
     *
     * @param lockInfo 锁信息
     */
    void setLockInfo(LockInfo lockInfo);

    /**
     * 获取锁信息
     *
     * @return LockInfo 锁信息
     */
    LockInfo getLockInfo();

    /**
     * 清除锁信息
     */
    void clearLockInfo();

    /**
     * 加锁
     *
     * @return boolean
     * @author Mr_wenpan@163.com 2021/7/27 10:49 上午
     */
    boolean lock();

    /**
     * 释放锁
     *
     * @return void
     * @author Mr_wenpan@163.com 2021/7/27 10:49 上午
     */
    void releaseLock();
}